package com.itheima.system.pojo;

import com.itheima.common.annotion.ExcelAttribute;
import lombok.*;
import java.io.Serializable;
import java.text.DecimalFormat;
import java.util.*;

/**
 * @author IntelliJ IDEA
 * @date 2020/10/23  9:10
 */
@NoArgsConstructor
@Setter
@Getter
@EqualsAndHashCode
@ToString
public class User implements Serializable {

    /**
     * 用户id
     */
    private String id;

    /**
     * 手机号
     */
    @ExcelAttribute(sort = 2)
    private String mobile;

    /**
     * 用户名称
     */
    @ExcelAttribute(sort = 1)
    private String username;

    /**
     * 密码
     */

    private String password;

    /**
     * 启用状态 0为禁用，1为启用
     */
    private String enableState;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 企业id
     */
    private String companyId;

    /**
     * 部门id
     */
    private String departmentId;

    /**
     * 入职时间
     */
    @ExcelAttribute(sort = 5)
    private Date timeOfEntry;

    /**
     * 聘用形式
     */
    @ExcelAttribute(sort = 4)
    private String  formOfEmployment;

    /**
     * 工号
     */
    @ExcelAttribute(sort = 3)
    private String workNumber;

    /**
     * 管理形式
     */
    private String formOfManagement;

    /**
     * 工作城市
     */
    private String workingCity;

    /**
     * 转正时间
     */
    private Date correctionTime;

    /**
     * 服务状态
     */
    private String inServiceStatus;

    /**
     * 企业名称
     */
    private String companyName;

    /**
     * 部门名称
     */
    private String departmentName;

    /**
     * 用户的级别
     *      String 类型
     *      saasAdmin: saas管理员具备所有权限
     *      coAdmin: 企业管理（创建租户企业时候添加）
     *      user： 普通用户
     *
     */
    private String level;


    /**
     * 头像
     */
    private String staffPhoto;

    /**
     * 时间的格式化
     */
    private String timeStyle;

    /**
     * 用户对应的角色
     */
    private Set<Role> role=new HashSet<>(0);

    /**
     * 部门编码
     */
    @ExcelAttribute(sort = 6)
    private String departmentCode;


    public User(Object[] values){
        this.username= values[1].toString();
        this.mobile= values[2].toString();
        this.workNumber=new DecimalFormat("#").format(values[3]).toString();
        this.formOfEmployment=new DecimalFormat("#").format(values[4]).toString();
        this.timeOfEntry=(Date) values[5];
        this.departmentCode=values[6].toString();
    }
}
